package com.syh.jn.scm.domain.supplier.repository.sale;

import com.syh.core.ddd.infrastructure.repository.AggregateRepository;
import com.syh.jn.scm.domain.supplier.entity.sale.SaleReturnOrder;
import com.syh.jn.scm.domain.supplier.entity.sale.SaleReturnOrderItem;

import java.util.List;

public interface SaleReturnOrderRepository extends SaleReturnOrderReadRepository, AggregateRepository<SaleReturnOrder, Long> {

  /**
   * 修改订单状态
   *
   * @param saleReturnOrder
   */
  public void updateStatus(SaleReturnOrder saleReturnOrder);

  /**
   * 根据id获取订单明细
   *
   * @param id
   * @return
   */
  List<SaleReturnOrderItem> getItemsBySaleReturnOrderId(Long id);

  /**
   * 根据ids获取明细
   *
   * @param saleReturnOrderIds
   * @return
   */
  List<SaleReturnOrderItem> getItemsBySaleReturnOrderIds(Long[] saleReturnOrderIds);

  /**
   * 上传单据
   *
   * @param order
   */
  public void uploadImages(SaleReturnOrder order);

  /**
   * 修改订单及订单项：非删除重建
   * @param order
   */
   public void updateOrderAndItems(SaleReturnOrder order);

  /**
   * 根据服务商id删除订单
   * @param businessEntityId
   */
  public void deleteByBusinessEntityId(Long businessEntityId);
}
